# PyQuine
#
# Copyright (c) 2007 Alexis Couronne <www.skitoo.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
# 

import pmock,sqlobject
from core.organizer import *
from core.party import Party
from datetime import datetime

class TestOrganizer( pmock.MockTestCase ):
    
    def setUp(self):
        sqlobject.sqlhub.processConnection = sqlobject.connectionForURI( 'sqlite:/:memory:' )
        Organizer.createTable(ifNotExists=True)
        Party.createTable(ifNotExists=True)
        self.instance = Organizer( name="Les campagnards", address="123 rue du jambon", postalCode="12300", city="Labas", callNumber="0512345612", webSite="www.site.com", email="orga@site.com" )
        
    def tearDown(self):
        Organizer.dropTable()
        Party.dropTable()
        
    def testOrganizer(self):
        self.assertEquals( self.instance.name, "Les campagnards" )
        self.assertEquals( self.instance.address, "123 rue du jambon" )
        self.assertEquals( self.instance.postalCode, "12300" )
        self.assertEquals( self.instance.city, "Labas" )
        self.assertEquals( self.instance.callNumber, "0512345612" )
        self.assertEquals( self.instance.webSite, "www.site.com" )
        self.assertEquals( self.instance.email, "orga@site.com" )
        
    def testAddParty(self):        
        party1 = Party( date_event=datetime(2007, 04, 10, 10, 00, 00), organizer=self.instance )
        self.assertEquals( self.instance.parties[0], party1 )
        
    def testPersistence(self):
        self.assertEquals( self.instance.id, 1 )
        organizer = Organizer.get(1)
        self.assertEquals( organizer, self.instance )
        